Het principe (wel lezen als je nog niet erg goed online kan)
Hoe het ongeveer gaat.

Als de server opstart wordt er een buffer gemaakt en wordt er naar een socket geluisterd. Het IP van de internet verbinding wordt opgevraagd.

Als een speler probeert te joinen, wordt er een instantie van het object obj_player gemaakt. Er wordt in de lijst van spelers gezocht naar een leeg plekje. Is er een leeg plekje, dan krijgt die speler het ID van dat plekje.  Wordt er geen leeg plekje gevonden, dan krijgt dat object het ID -1.

Het ID wordt via obj_player naar de client die wilt joinen verstuurd.
De client ontvankt het berichtje, en leest het ID uit. Als het -1 is, dan stopt de client, want de server zit vol. Anders wordt de username en het IP van de client naar de server verzonden.

Zodra de server dit terugkrijgt, wordt er aan de starter van de server verteld dat er iemand is gejoind. Er wordt aan de al aanwezige clients een bericht verstuurd met daarin het id en de naam van de nieuwe speler. De nieuwe speler krijgt hetzelfde bericht van de clients die er al waren. Voor elke nieuwe client wordt een obj_player_other aangemaakt in de andere clients. Die krijgt het ID en de username van de nieuwe client.

Als de speler zich beweegt, dan wordt de X, de Y en de richting van de speler naar de server verstuurd. De server ontvangt dit, en stuurt dit door, met 1 kleine toevoeging: het ID van de speler die bewoog wordt meegestuurd. 

In de client wordt aan  de obj_player_other met dat id de nieuwe X, Y en direction toegewezen. Zo wordt de beweging doorgegeven.

Bij een chatbericht van de client komt dit in de server aan en wordt dit naar alle clients gestuurd met de rang 1. Rang 1 betekent dat het een normaal bericht is, en de kleur dus gewoon zwart is. 

Bij een chatbericht van de server gebeurt hetzelfde, alleen dan is de rang 2 en wordt de kleur van het bericht dus rood.

Als een speler weggaat wordt in de server  de obj_player verwijderd die erbij hoort. Het weggaan wordt naar de andere clients verzonden en die doen hetzelfde met obj_player_other.

Intussen wordt van de clients ook nog de ping bijgehouden in de variabele 'delay'. Deze blijft alleen oplopen als de speler niet beweegt, dus wordt er elke 3 seconden een soort 'heartbeat' naar de server verzonden.